from PIL import Image
import os

gif = input("请输入gif地址:")
# 使用Image模块的open()方法打开gif动态图像时，默认是第一帧
im = Image.open(gif)
w, h = im.size
if w > h:
    box = ((w - h) // 2, 0, w - (w - h) / 2, h)
else:
    box = (0, 0, w, h)
name = input("请输入名称:")
# 创建存放每帧图片的文件夹(文件夹名与图片名称相同)
path = os.path.dirname(__file__)
path = os.path.join(path, "images")
png_dir = os.path.join(path, name)
if not os.path.isdir(png_dir):
    os.makedirs(png_dir)
frames = []
for frame in range(im.n_frames):
    im.seek(frame)
    frames.append(im.crop(box))
for status in ["待机", "攻击", "受伤", "死亡"]:
    for i in range(len(frames)):
        frame = frames[i]
        png_path = os.path.join(png_dir, f"{name}_{status}_{i}.png")
        frame.save(png_path)
    im.seek(0)
